package com.landinfo.domain;


import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.Where;

import javax.persistence.*;
import java.io.Serializable;
import java.util.LinkedHashSet;
import java.util.Set;

/**
 * 资源概况
 */
@Entity
@Table(name = "resources_survey")
public class ResourcesSurvey implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
    @SequenceGenerator(name = "sequenceGenerator")
    @Column(name = "id", length = 36)
    private String id;


    @Column(name = "行政区划名称", length = 100)
    private String xzqhName;

    @Column(name = "行政区划代码", length = 36)
    private String xzqhCode;

    @Column(name = "行政区划父级代码", length = 36)
    private String xzqhParentCode;

    /**
     * 土地面积
     */
    @Column(name = "土地面积")
    private Float tudimianji;

    /**
     * 森林面积
     */
    @Column(name = "森林面积")
    private Float senlinmianji;

    /**
     * 森林覆盖率
     */
    @Column(name = "森林覆盖率")
    private Float senlinfugailu;

    /**
     * 林地面积
     */
    @Column(name = "林地面积")
    private Float lindimianji;

    /**
     * 森林蓄积
     */
    @Column(name = "森林蓄积")
    private Float senlinxuji;

    /**
     * 林木绿化率
     */
    @Column(name = "林木绿化率")
    private Float linmuluhualu;

    /**
     * 国土绿化覆盖率
     */
    @Column(name = "国土绿化覆盖率")
    private Float guotulvhuafugailv;

    /**
     * 有林地
     */
    @Column(name = "有林地")
    private Float youlindi;
    /**
     * 疏林地
     */
    @Column(name = "疏林地")
    private Float shulindi;

    /**
     * 灌木林地
     */
    @Column(name = "灌木林地")
    private Float guanmulindi;

    /**
     * 未成林地
     */
    @Column(name = "未成林地")
    private Float weichenglindi;

    /**
     * 苗圃地
     */
    @Column(name = "苗圃地")
    private Float miaopudi;

    /**
     * 无立木林地
     */
    @Column(name = "无立木林地")
    private Float wulimulindi;

    /**
     * 宜林地
     */
    @Column(name = "宜林地")
    private Float yilindi;

    /**
     * 林业辅助生产用地
     */
    @Column(name = "林业辅助生产用地")
    private Float linyefuzhushengchanyongdi;

    /**
     * 国有面积
     */
    @Column(name = "国有面积")
    private Float guoyoumianji;

    /**
     * 集体面积
     */
    @Column(name = "集体面积")
    private Float jitimianji;

    /**
     * 个人面积
     */
    @Column(name = "个人面积")
    private Float gerenmianji;

    /**
     * 国家公益林
     */
    @Column(name = "国家公益林")
    private Float guojiagongyilin;

    /**
     * 地方公益林
     */
    @Column(name = "地方公益林")
    private Float difanggongyilin;

    /**
     * 商品林
     */
    @Column(name = "商品林")
    private Float shangpinglin;

    /**
     * 年份
     */
    @Column(name = "年份")
    private Integer year;

    /**
     * 蓄积冷杉
     */
    @Column(name = "蓄积冷杉")
    private Float xujilengshan;
    /**
     * 蓄积云杉
     */
    @Column(name = "蓄积云杉")
    private Float xujiyunshan;
    /**
     * 蓄积柏木
     */
    @Column(name = "蓄积柏木")
    private Float xujibomu;
    /**
     * 蓄积马尾松
     */
    @Column(name = "蓄积马尾松")
    private Float xujimaweisong;
    /**
     * 蓄积云南松
     */
    @Column(name = "蓄积云南松")
    private Float xujiyunansong;
    /**
     * 蓄积栎
     */
    @Column(name = "蓄积栎")
    private Float xujili;
    /**
     * 蓄积青冈
     */
    @Column(name = "蓄积青冈")
    private Float xujiqinggang;

    /**
     * 面积冷杉
     */
    @Column(name = "面积冷杉")
    private Float mianjilengshan;
    /**
     * 面积云杉
     */
    @Column(name = "面积云杉")
    private Float mianjiyunshan;
    /**
     * 面积柏木
     */
    @Column(name = "面积柏木")
    private Float mianjibomu;
    /**
     * 面积马尾松
     */
    @Column(name = "面积马尾松")
    private Float mianjimaweisong;
    /**
     * 面积云南松
     */
    @Column(name = "面积云南松")
    private Float mianjiyunnansong;
    /**
     * 面积栎
     */
    @Column(name = "面积栎")
    private Float mianjili;
    /**
     * 面积青冈
     */
    @Column(name = "面积青冈")
    private Float mianjiqinggang;

    /**
     * 典型森林类别_蓄积
     */
    @Column(name = "典型森林类别_蓄积", columnDefinition = "TEXT")
    @Lob
    @Type(type = "org.hibernate.type.TextType")
    @Basic(fetch=FetchType.EAGER)
    private String dxsllb_xj;

    /**
     * 典型森林类别_面积
     */
    @Column(name = "典型森林类别_面积", columnDefinition = "TEXT")
    @Lob
    @Type(type = "org.hibernate.type.TextType")
    @Basic(fetch=FetchType.EAGER)
    private String dxsllb_mj;

    /**
     * 天然
     */
    @Column(name = "天然")
    private Float tianran;
    /**
     * 人工
     */
    @Column(name = "人工")
    private Float rengong;

    /**
     * 森林类别国家公益林
     */
    @Column(name = "森林类别国家公益林")
    private Float senlinleibieguojiagongyilin;
    /**
     * 森林类别省级公益林
     */
    @Column(name = "森林类别省级公益林")
    private Float senlinleibieshengjigongyilin;
    /**
     * 森林类别商品林
     */
    @Column(name = "森林类别商品林")
    private Float senlinleibieshangpinglin;

    /**
     * 活立木蓄积
     */
    @Column(name = "活立木蓄积")
    private Float huolimuxuji;
    /**
     * 蓄积结构森林蓄积
     */
    @Column(name = "蓄积结构森林蓄积")
    private Float xujijiegousenlinxuji;
    /**
     * 四旁蓄积
     */
    @Column(name = "四旁蓄积")
    private Float sipangxuji;
    /**
     * 散生蓄积
     */
    @Column(name = "散生蓄积")
    private Float sanshengxuji;

    /**
     * 政区类型
     */
    @Column(name = "政区类型")
    private String regionType;



    //    @Where(clause = "state=1")
    @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumns(value = {@JoinColumn(name = "行政区划父级代码", referencedColumnName = "行政区划代码")})
    private Set<ResourcesSurvey> children = new LinkedHashSet<ResourcesSurvey>();


    /**
     * 有林地
     *
     * @return
     */
    public Float getYoulindi() {
        return youlindi;
    }

    /**
     * 有林地
     *
     * @param youlindi
     */
    public void setYoulindi(Float youlindi) {
        this.youlindi = youlindi;
    }

    /**
     * 森林覆盖率
     *
     * @return
     */
    public Float getSenlinfugailu() {
        return senlinfugailu;
    }

    /**
     * 森林覆盖率
     *
     * @param senlinfugailu
     */
    public void setSenlinfugailu(Float senlinfugailu) {
        this.senlinfugailu = senlinfugailu;
    }

    /**
     * 林地面积
     *
     * @return
     */
    public Float getLindimianji() {
        return lindimianji;
    }

    /**
     * 林地面积
     *
     * @param lindimianji
     */
    public void setLindimianji(Float lindimianji) {
        this.lindimianji = lindimianji;
    }

    /**
     * 森林蓄积
     *
     * @return
     */
    public Float getSenlinxuji() {
        return senlinxuji;
    }

    /**
     * 森林蓄积
     *
     * @param senlinxuji
     */
    public void setSenlinxuji(Float senlinxuji) {
        this.senlinxuji = senlinxuji;
    }

    /**
     * 林木绿化率
     *
     * @return
     */
    public Float getLinmuluhualu() {
        return linmuluhualu;
    }

    /**
     * 林木绿化率
     *
     * @param linmuluhualu
     */
    public void setLinmuluhualu(Float linmuluhualu) {
        this.linmuluhualu = linmuluhualu;
    }

    /**
     * 疏林地
     *
     * @return
     */
    public Float getShulindi() {
        return shulindi;
    }

    /**
     * 疏林地
     *
     * @param shulindi
     */
    public void setShulindi(Float shulindi) {
        this.shulindi = shulindi;
    }

    /**
     * 灌木林地
     *
     * @return
     */
    public Float getGuanmulindi() {
        return guanmulindi;
    }

    /**
     * 灌木林地
     *
     * @param guanmulindi
     */
    public void setGuanmulindi(Float guanmulindi) {
        this.guanmulindi = guanmulindi;
    }

    /**
     * 未成林地
     *
     * @return
     */
    public Float getWeichenglindi() {
        return weichenglindi;
    }

    /**
     * 未成林地
     *
     * @param weichenglindi
     */
    public void setWeichenglindi(Float weichenglindi) {
        this.weichenglindi = weichenglindi;
    }

    /**
     * 苗圃地
     *
     * @return
     */
    public Float getMiaopudi() {
        return miaopudi;
    }

    /**
     * 苗圃地
     *
     * @param miaopudi
     */
    public void setMiaopudi(Float miaopudi) {
        this.miaopudi = miaopudi;
    }

    /**
     * 无立木林地
     *
     * @return
     */
    public Float getWulimulindi() {
        return wulimulindi;
    }

    /**
     * 无立木林地
     *
     * @param wulimulindi
     */
    public void setWulimulindi(Float wulimulindi) {
        this.wulimulindi = wulimulindi;
    }

    /**
     * 宜林地
     *
     * @return
     */
    public Float getYilindi() {
        return yilindi;
    }

    /**
     * 宜林地
     *
     * @param yilindi
     */
    public void setYilindi(Float yilindi) {
        this.yilindi = yilindi;
    }

    /**
     * 林业辅助生产用地
     *
     * @return
     */
    public Float getLinyefuzhushengchanyongdi() {
        return linyefuzhushengchanyongdi;
    }

    /**
     * 林业辅助生产用地
     *
     * @param linyefuzhushengchanyongdi
     */
    public void setLinyefuzhushengchanyongdi(Float linyefuzhushengchanyongdi) {
        this.linyefuzhushengchanyongdi = linyefuzhushengchanyongdi;
    }

    /**
     * 国有面积
     *
     * @return
     */
    public Float getGuoyoumianji() {
        return guoyoumianji;
    }

    /**
     * 国有面积
     *
     * @param guoyoumianji
     */
    public void setGuoyoumianji(Float guoyoumianji) {
        this.guoyoumianji = guoyoumianji;
    }

    /**
     * 集体面积
     *
     * @return
     */
    public Float getJitimianji() {
        return jitimianji;
    }

    /**
     * 集体面积
     *
     * @param jitimianji
     */
    public void setJitimianji(Float jitimianji) {
        this.jitimianji = jitimianji;
    }

    /**
     * 国家公益林
     *
     * @return
     */
    public Float getGuojiagongyilin() {
        return guojiagongyilin;
    }

    /**
     * 国家公益林
     *
     * @param guojiagongyilin
     */
    public void setGuojiagongyilin(Float guojiagongyilin) {
        this.guojiagongyilin = guojiagongyilin;
    }

    /**
     * 地方公益林
     *
     * @return
     */
    public Float getDifanggongyilin() {
        return difanggongyilin;
    }

    /**
     * 地方公益林
     *
     * @param difanggongyilin
     */
    public void setDifanggongyilin(Float difanggongyilin) {
        this.difanggongyilin = difanggongyilin;
    }

    /**
     * 商品林
     *
     * @return
     */
    public Float getShangpinglin() {
        return shangpinglin;
    }

    /**
     * 商品林
     *
     * @param shangpinglin
     */
    public void setShangpinglin(Float shangpinglin) {
        this.shangpinglin = shangpinglin;
    }

    /**
     * 年份
     *
     * @return
     */
    public Integer getYear() {
        return year;
    }

    /**
     * 年份
     *
     * @param year
     */
    public void setYear(Integer year) {
        this.year = year;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    /**
     * 行政区划名称
     *
     * @return
     */
    public String getXzqhName() {
        return xzqhName;
    }

    /**
     * 行政区划名称
     *
     * @param xzqhName
     */
    public void setXzqhName(String xzqhName) {
        this.xzqhName = xzqhName;
    }

    /**
     * 行政区划代码
     *
     * @return
     */
    public String getXzqhCode() {
        return xzqhCode;
    }

    /**
     * 行政区划代码
     *
     * @param xzqhCode
     */
    public void setXzqhCode(String xzqhCode) {
        this.xzqhCode = xzqhCode;
    }

    /**
     * 行政区划父级代码
     *
     * @return
     */
    public String getXzqhParentCode() {
        return xzqhParentCode;
    }

    /**
     * 行政区划父级代码
     *
     * @param xzqhParentCode
     */
    public void setXzqhParentCode(String xzqhParentCode) {
        this.xzqhParentCode = xzqhParentCode;
    }

    public Set<ResourcesSurvey> getChildren() {
        return children;
    }

    public void setChildren(Set<ResourcesSurvey> children) {
        this.children = children;
    }

    public Float getGerenmianji() {
        return gerenmianji;
    }

    public void setGerenmianji(Float gerenmianji) {
        this.gerenmianji = gerenmianji;
    }

    public Float getXujilengshan() {
        return xujilengshan;
    }

    public void setXujilengshan(Float xujilengshan) {
        this.xujilengshan = xujilengshan;
    }

    public Float getXujiyunshan() {
        return xujiyunshan;
    }

    public void setXujiyunshan(Float xujiyunshan) {
        this.xujiyunshan = xujiyunshan;
    }

    public Float getXujibomu() {
        return xujibomu;
    }

    public void setXujibomu(Float xujibomu) {
        this.xujibomu = xujibomu;
    }

    public Float getXujimaweisong() {
        return xujimaweisong;
    }

    public void setXujimaweisong(Float xujimaweisong) {
        this.xujimaweisong = xujimaweisong;
    }

    public Float getXujiyunansong() {
        return xujiyunansong;
    }

    public void setXujiyunansong(Float xujiyunansong) {
        this.xujiyunansong = xujiyunansong;
    }

    public Float getXujili() {
        return xujili;
    }

    public void setXujili(Float xujili) {
        this.xujili = xujili;
    }

    public Float getXujiqinggang() {
        return xujiqinggang;
    }

    public void setXujiqinggang(Float xujiqinggang) {
        this.xujiqinggang = xujiqinggang;
    }

    public Float getMianjilengshan() {
        return mianjilengshan;
    }

    public void setMianjilengshan(Float mianjilengshan) {
        this.mianjilengshan = mianjilengshan;
    }

    public Float getMianjiyunshan() {
        return mianjiyunshan;
    }

    public void setMianjiyunshan(Float mianjiyunshan) {
        this.mianjiyunshan = mianjiyunshan;
    }

    public Float getMianjibomu() {
        return mianjibomu;
    }

    public void setMianjibomu(Float mianjibomu) {
        this.mianjibomu = mianjibomu;
    }

    public Float getMianjimaweisong() {
        return mianjimaweisong;
    }

    public void setMianjimaweisong(Float mianjimaweisong) {
        this.mianjimaweisong = mianjimaweisong;
    }

    public Float getMianjiyunnansong() {
        return mianjiyunnansong;
    }

    public void setMianjiyunnansong(Float mianjiyunnansong) {
        this.mianjiyunnansong = mianjiyunnansong;
    }

    public Float getMianjili() {
        return mianjili;
    }

    public void setMianjili(Float mianjili) {
        this.mianjili = mianjili;
    }

    public Float getMianjiqinggang() {
        return mianjiqinggang;
    }

    public void setMianjiqinggang(Float mianjiqinggang) {
        this.mianjiqinggang = mianjiqinggang;
    }

    public Float getTianran() {
        return tianran;
    }

    public void setTianran(Float tianran) {
        this.tianran = tianran;
    }

    public Float getRengong() {
        return rengong;
    }

    public void setRengong(Float rengong) {
        this.rengong = rengong;
    }

    public Float getSenlinleibieguojiagongyilin() {
        return senlinleibieguojiagongyilin;
    }

    public void setSenlinleibieguojiagongyilin(Float senlinleibieguojiagongyilin) {
        this.senlinleibieguojiagongyilin = senlinleibieguojiagongyilin;
    }

    public Float getSenlinleibieshangpinglin() {
        return senlinleibieshangpinglin;
    }

    public void setSenlinleibieshangpinglin(Float senlinleibieshangpinglin) {
        this.senlinleibieshangpinglin = senlinleibieshangpinglin;
    }


    public Float getHuolimuxuji() {
        return huolimuxuji;
    }

    public void setHuolimuxuji(Float huolimuxuji) {
        this.huolimuxuji = huolimuxuji;
    }

    public Float getXujijiegousenlinxuji() {
        return xujijiegousenlinxuji;
    }

    public void setXujijiegousenlinxuji(Float xujijiegousenlinxuji) {
        this.xujijiegousenlinxuji = xujijiegousenlinxuji;
    }

    public Float getSanshengxuji() {
        return sanshengxuji;
    }

    public void setSanshengxuji(Float sanshengxuji) {
        this.sanshengxuji = sanshengxuji;
    }

    public Float getSipangxuji() {
        return sipangxuji;
    }

    public void setSipangxuji(Float sipangxuji) {
        this.sipangxuji = sipangxuji;
    }

    public String getRegionType() {
        return regionType;
    }

    public void setRegionType(String regionType) {
        this.regionType = regionType;
    }

    public Float getSenlinleibieshengjigongyilin() {
        return senlinleibieshengjigongyilin;
    }

    public void setSenlinleibieshengjigongyilin(Float senlinleibieshengjigongyilin) {
        this.senlinleibieshengjigongyilin = senlinleibieshengjigongyilin;
    }

    public Float getSenlinmianji() {
        return senlinmianji;
    }

    public void setSenlinmianji(Float senlinmianji) {
        this.senlinmianji = senlinmianji;
    }

    public Float getTudimianji() {
        return tudimianji;
    }

    public void setTudimianji(Float tudimianji) {
        this.tudimianji = tudimianji;
    }

    public Float getGuotulvhuafugailv() {
        return guotulvhuafugailv;
    }

    public void setGuotulvhuafugailv(Float guotulvhuafugailv) {
        this.guotulvhuafugailv = guotulvhuafugailv;
    }

    public String getDxsllb_xj() {
        return dxsllb_xj;
    }

    public void setDxsllb_xj(String dxsllb_xj) {
        this.dxsllb_xj = dxsllb_xj;
    }

    public String getDxsllb_mj() {
        return dxsllb_mj;
    }

    public void setDxsllb_mj(String dxsllb_mj) {
        this.dxsllb_mj = dxsllb_mj;
    }
}
